<?xml version="1.0" encoding="UTF-8"?>
		<sect1 id="ch02-8">
			<title>关于渐变的类型、参数和使用</title>
			<para>渐变效果是ADV制作中最经常用到的效果。ADV游戏经常包含图像的切换。如果毫无过渡的更换图像，效果一般会显得非常糟糕。因而，淡入、淡出等图像效果几乎是每一个ADV游戏必然会使用的。加入这些效果，可以使得图像的切换更加平滑，让游戏感觉更加精细。</para>
			<para>KAG中，淡入、淡出这些在一定的时间内改变图像的功能都使用统一的渐变效果来实现。KAGeXpress的背景切换等效果，也被设计为可以调用渐变效果。使用的渐变效果的类型在KAGeXpress中都可以由method属性指定。</para>
			<para>KAG包含了多种的渐变方式。吉里吉里内核自嵌了3种类型的渐变，此外通过外部插件，还可以增加新的渐变效果。</para>
			<para>所有调用的渐变的指令都需要通过time属性指定时间，对于KAGeXpress的图像指令，未指定时间的渐变视作要求新的图像直接出现。</para>
			<para>以下的图例中，A为渐变前的图像（下面称作原图像），B为用来取代原图像的目标图像（下面称作新图像）。</para>
			<sect2 id="ch02-8-1">
				<title>crossfade</title>
				<para>最简单、最常用的渐变类型。要渐变的部分渐渐从原图像变为新图像。</para>
				<para>没有特别的属性需要指定。</para>
			</sect2>
			<sect2 id="ch02-8-2">
				<title>universal</title>
				<para>一种独特的渐变类型。可以按照使用者的要求，按照任意顺序与方式渐变整个区域。</para>
				<para>使用时，必须提供一个规则文件，指定渐变的规则。该文件必须是灰阶的图像。</para>
				<para>请看以下的样图。</para>
				<figure id="fig2-4">
					<title>规则文件的样例</title>
					<graphic fileref="figure/univtrans_R.png" format="PNG"/>
				</figure>
				<para>系统将按照这个规则文件的灰度，从对应规则文件黑色的部分渐渐渐变到对应白色部分。</para>
				<para>对于上述的规则文件，系统将从上到下（对应规则文件中从黑到白）将屏幕上的A渐变为B。</para>
				<para>此外，这种类型的渐变可以设定渐变区域属性（vague属性），指定过渡区域（也就是转换中，同时显示出原图像和新图像的区域）的大小。</para>
				<figure id="fig2-5">
					<title>渐变区域（vague）属性设定样例</title>
					<graphic fileref="figure/univtrans_V1.png" format="PNG"/>
					<synopsis>这是vague=1的场合。</synopsis>
					<graphic fileref="figure/univtrans_V64.png" format="PNG"/>
					<synopsis>这是vague=64的场合。</synopsis>
				</figure>
				<para>指定不同vague值产生的差别可以参看上图。</para>
				<para>对于KAGeXpress，默认的vague值为64。</para>
				<para>下面是universal渐变属性详细列表：</para>
				<table id="tab2-4">
					<title>universal渐变的使用的属性列表</title>
					<tgroup cols="4">
						<thead>
							<row>
								<entry>属性名称</entry>
								<entry>是否必须</entry>
								<entry>说明</entry>
							</row>
						</thead>
						<tbody>
							<row>
								<entry>rule</entry>
								<entry>是</entry>
								<entry>
									<para>指定决定通用渐变的轨迹的，规则文件的名称。</para>
									<para>该文件必须是灰度图像数据。</para>
									<para>系统将从该图像中黑色部分所对应的原图部分开始渐变，渐渐按照顺序开始处理图像中白色的部分。</para>
								</entry>
							</row>
							<row>
								<entry>vague</entry>
								<entry>否</entry>
								<entry>决定过渡区域，也就是同时进行转换的区域的大小。</entry>
							</row>
						</tbody>
					</tgroup>
				</table>
			</sect2>
			<sect2 id="ch02-8-3">
				<title>scroll</title>
				<para>scroll类型的渐变，如同其字面意思一样，就是让新图像从外面移动进入原图像的区域。</para>
				<para>新的图像可以任意选择从上、下、左、右四个方向中的任意一个进入，这个效果可以通过from属性指定。</para>
				<para>本节讲解scroll时使用的样图，进入方向都为下，也就是从下方进入屏幕。</para>
				<para>此外，实际上scroll渐变的类型还包括三种，由参数stay控制。</para>
				<figure id="fig2-6">
					<title>scroll渐变卷动类型（stay）属性设定样例</title>
					<graphic fileref="figure/univtrans_Sstay.png" format="PNG"/>
					<synopsis>这是stay=stayfore的场合。</synopsis>
					<graphic fileref="figure/univtrans_Sstaysrc.png" format="PNG"/>
					<synopsis>这是stay=stayback的场合。</synopsis>
					<graphic fileref="figure/univtrans_Snostay.png" format="PNG"/>
					<synopsis>这是stay=nostay的场合。</synopsis>
				</figure>
				<para>三种不同的效果如上图所示。</para>
				<para>首先，stay=stayfore时，原图像将原地不动，而新图像从外向里移动。当进入方向是从下方进入时，看起来是如同下图这样的。</para>
				<para>stay=stayback时，原图像将从进入方向的反方向被抽走，而露出没有移动的新图像。</para>
				<para>stay=nostay时，原图像和新图像将同时向同一方向移动，直到新图像取代旧图像。</para>
				<para>下面是scroll渐变属性详细列表：</para>
				<table id="tab2-5">
					<title>scroll渐变的使用的属性列表</title>
					<tgroup cols="4">
						<thead>
							<row>
								<entry>属性名称</entry>
								<entry>是否必须</entry>
								<entry>说明</entry>
							</row>
						</thead>
						<tbody>
							<row>
								<entry>stay</entry>
								<entry>否</entry>
								<entry>
									<para>stay=nostay时，原图像和新图像将按相同速度向同一方向移动，直到新图像代替旧图像。</para>
									<para>stay=stayfore时，原图像将不会移动，新图像会自外移动进来并覆盖元图像。</para>
									<para>stay=stayback时，新图像将不会移动，原图像会被抽走，然后露出新图像。</para>
								</entry>
							</row>
							<row>
								<entry>from</entry>
								<entry>是</entry>
								<entry>指定为left、right、top、bottom，分别可以让新图像从左、右、上、下方向卷入屏幕。</entry>
							</row>
						</tbody>
					</tgroup>
				</table>
			</sect2>
		</sect1>